// 课程模块的 Vuex Store
const state = {
  // 课程详情数据
  courseDetails: {
    1: {
      id: 1,
      title: '高中数学必修三 - 概率与统计',
      description: '本课程系统讲解高中数学必修三中的概率与统计部分，包含大量例题和习题。通过本课程的学习，学生将掌握概率与统计的基本概念、计算方法和应用技巧，为高考数学复习打下坚实基础。',
      image: 'https://picsum.photos/id/401/800/450',
      price: '¥99',
      originalPrice: '¥129',
      rating: 4.9,
      students: 1245,
      duration: '12小时35分钟',
      lectures: 45,
      level: '中级',
      lastUpdated: '2023-05-15',
      language: '中文',
      certificate: true,
      teacher: {
        id: 101,
        name: '李明',
        title: '特级教师',
        avatar: 'https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png',
        description: '北京市重点中学特级教师，从教20年，教学经验丰富。曾获全国优秀教师称号，指导多名学生在数学奥林匹克竞赛中获奖。',
        courses: 12,
        students: 5600,
        rating: 4.9
      },
      tags: ['高中数学', '必修三', '概率统计', '高考复习'],
      category: '数学',
      subcategory: '高中数学',
      requirements: [
        '具备初中数学基础知识',
        '学习过高中数学必修一和必修二',
        '有一定的逻辑思维能力'
      ],
      targetAudience: [
        '高中数学学习者',
        '备战高考的学生',
        '对概率统计感兴趣的学习者'
      ],
      whatYouWillLearn: [
        '掌握概率的基本概念和计算方法',
        '理解随机变量及其分布',
        '学会使用统计方法分析数据',
        '解决实际问题中的概率统计应用',
        '提高数学建模和逻辑思维能力'
      ],
      sections: [
        {
          id: 1,
          title: '第一章：概率的基本概念',
          lectures: [
            { id: 101, title: '1.1 随机事件与样本空间', duration: '25:30', preview: true },
            { id: 102, title: '1.2 概率的定义与性质', duration: '30:15', preview: false },
            { id: 103, title: '1.3 古典概型', duration: '28:45', preview: false },
            { id: 104, title: '1.4 几何概型', duration: '26:20', preview: false },
            { id: 105, title: '第一章习题讲解', duration: '45:10', preview: false }
          ]
        },
        {
          id: 2,
          title: '第二章：条件概率与独立性',
          lectures: [
            { id: 201, title: '2.1 条件概率', duration: '32:15', preview: false },
            { id: 202, title: '2.2 乘法公式', duration: '28:40', preview: false },
            { id: 203, title: '2.3 全概率公式', duration: '35:20', preview: false },
            { id: 204, title: '2.4 贝叶斯公式', duration: '40:10', preview: false },
            { id: 205, title: '2.5 事件的独立性', duration: '30:25', preview: false },
            { id: 206, title: '第二章习题讲解', duration: '50:30', preview: false }
          ]
        },
        {
          id: 3,
          title: '第三章：随机变量及其分布',
          lectures: [
            { id: 301, title: '3.1 离散型随机变量', duration: '35:45', preview: false },
            { id: 302, title: '3.2 二项分布', duration: '40:20', preview: false },
            { id: 303, title: '3.3 泊松分布', duration: '38:15', preview: false },
            { id: 304, title: '3.4 连续型随机变量', duration: '42:30', preview: false },
            { id: 305, title: '3.5 正态分布', duration: '45:10', preview: false },
            { id: 306, title: '第三章习题讲解', duration: '55:25', preview: false }
          ]
        },
        {
          id: 4,
          title: '第四章：统计与数据分析',
          lectures: [
            { id: 401, title: '4.1 数据的收集与整理', duration: '30:15', preview: false },
            { id: 402, title: '4.2 数据的图表表示', duration: '35:40', preview: false },
            { id: 403, title: '4.3 数据的数字特征', duration: '40:25', preview: false },
            { id: 404, title: '4.4 抽样与抽样分布', duration: '38:50', preview: false },
            { id: 405, title: '4.5 参数估计', duration: '42:15', preview: false },
            { id: 406, title: '第四章习题讲解', duration: '50:30', preview: false }
          ]
        },
        {
          id: 5,
          title: '第五章：概率统计在高考中的应用',
          lectures: [
            { id: 501, title: '5.1 高考真题解析（2018-2020）', duration: '55:20', preview: false },
            { id: 502, title: '5.2 高考真题解析（2021-2023）', duration: '58:40', preview: false },
            { id: 503, title: '5.3 解题技巧与方法总结', duration: '45:30', preview: false },
            { id: 504, title: '5.4 常见错误分析', duration: '40:15', preview: false },
            { id: 505, title: '5.5 综合练习与讲解', duration: '60:00', preview: false }
          ]
        }
      ],
      reviews: [
        {
          id: 1,
          user: '张同学',
          avatar: 'https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png',
          rating: 5,
          date: '2023-06-10',
          content: '老师讲解非常清晰，例题丰富，对我的高考复习帮助很大。特别是条件概率和贝叶斯公式的部分，通过老师的讲解终于理解了。'
        },
        {
          id: 2,
          user: '王同学',
          avatar: 'https://cube.elemecdn.com/9/c2/f0ee8a3c7c9638a54940382568c9dpng.png',
          rating: 4,
          date: '2023-05-28',
          content: '课程内容很充实，习题难度适中，循序渐进。唯一的建议是希望能增加一些更难的挑战题，为竞赛做准备。'
        },
        {
          id: 3,
          user: '李同学',
          avatar: 'https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png',
          rating: 5,
          date: '2023-05-15',
          content: '概率统计一直是我的弱项，通过这门课的学习，终于理清了思路。老师的教学方法很适合我，讲解深入浅出，举例生动。'
        }
      ],
      relatedCourses: [2, 7, 3, 5]
    },
    2: {
      id: 2,
      title: '高中物理 - 力学专题',
      description: '本课程深入讲解高中物理力学部分的重点难点，帮助学生建立物理思维。通过本课程的学习，学生将掌握牛顿运动定律、万有引力、动量守恒等重要概念和定律，提高解决力学问题的能力。',
      image: 'https://picsum.photos/id/402/800/450',
      price: '¥129',
      originalPrice: '¥159',
      rating: 4.8,
      students: 987,
      duration: '14小时20分钟',
      lectures: 50,
      level: '中级',
      lastUpdated: '2023-04-20',
      language: '中文',
      certificate: true,
      teacher: {
        id: 102,
        name: '王刚',
        title: '高级教师',
        avatar: 'https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png',
        description: '清华大学物理学博士，中学高级教师，有15年教学经验。曾参与编写多本高中物理教材和辅导书，善于用生活实例解释复杂的物理概念。',
        courses: 8,
        students: 4200,
        rating: 4.8
      },
      tags: ['高中物理', '力学', '牛顿定律', '高考复习'],
      category: '物理',
      subcategory: '高中物理'
    },
    3: {
      id: 3,
      title: '高中化学 - 有机化学基础',
      description: '本课程系统讲解高中化学中的有机化学部分，包括烃和烃的衍生物、糖类、蛋白质等重要有机物的结构、性质和反应。通过本课程的学习，学生将掌握有机化学的基本概念和规律，提高解决有机化学问题的能力。',
      image: 'https://picsum.photos/id/403/800/450',
      price: '¥89',
      originalPrice: '¥119',
      rating: 4.7,
      students: 856,
      duration: '10小时45分钟',
      lectures: 38,
      level: '中级',
      lastUpdated: '2023-03-15',
      language: '中文',
      certificate: true,
      teacher: {
        id: 103,
        name: '张丽',
        title: '特级教师',
        avatar: 'https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png',
        description: '北京师范大学化学教育博士，中学特级教师，有18年教学经验。曾获全国优秀教师称号，编写多本化学教辅资料。',
        courses: 10,
        students: 3800,
        rating: 4.7
      },
      tags: ['高中化学', '有机化学', '高考复习'],
      category: '化学',
      subcategory: '高中化学'
    },
    5: {
      id: 5,
      title: '高中英语 - 完形填空与阅读理解',
      description: '本课程针对高考英语中的完形填空和阅读理解部分，提供系统的解题方法和技巧。通过大量真题练习和详细讲解，帮助学生提高英语阅读能力和应试技巧。',
      image: 'https://picsum.photos/id/405/800/450',
      price: '¥79',
      originalPrice: '¥99',
      rating: 4.9,
      students: 1560,
      duration: '12小时30分钟',
      lectures: 42,
      level: '中级',
      lastUpdated: '2023-05-05',
      language: '中文',
      certificate: true,
      teacher: {
        id: 105,
        name: '刘英',
        title: '高级教师',
        avatar: 'https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png',
        description: '英国剑桥大学英语教育硕士，中学高级教师，有12年教学经验。擅长英语阅读教学，开发了多套英语阅读训练方法。',
        courses: 15,
        students: 6200,
        rating: 4.9
      },
      tags: ['高中英语', '完形填空', '阅读理解', '高考复习'],
      category: '英语',
      subcategory: '高中英语'
    },
    7: {
      id: 7,
      title: '高中数学 - 函数与导数',
      description: '本课程系统讲解高中数学中的函数与导数部分，包括基本初等函数、导数的概念与计算、导数的应用等内容。通过本课程的学习，学生将掌握函数与导数的基本概念和应用，提高解决相关问题的能力。',
      image: 'https://picsum.photos/id/407/800/450',
      price: '¥109',
      originalPrice: '¥139',
      rating: 4.8,
      students: 1320,
      duration: '13小时15分钟',
      lectures: 48,
      level: '中级',
      lastUpdated: '2023-04-10',
      language: '中文',
      certificate: true,
      teacher: {
        id: 101,
        name: '李明',
        title: '特级教师',
        avatar: 'https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png',
        description: '北京市重点中学特级教师，从教20年，教学经验丰富。曾获全国优秀教师称号，指导多名学生在数学奥林匹克竞赛中获奖。',
        courses: 12,
        students: 5600,
        rating: 4.9
      },
      tags: ['高中数学', '函数', '导数', '高考复习'],
      category: '数学',
      subcategory: '高中数学'
    }
  },
  
  // 当前正在查看的课程ID
  currentCourseId: null,
  
  // 用户已购课程ID列表
  purchasedCourses: [1, 3, 5],
  
  // 用户收藏的课程ID列表
  favoriteCourses: [2, 7],
  
  // 用户最近浏览的课程ID列表
  recentlyViewedCourses: []
};

const mutations = {
  // 设置当前查看的课程
  SET_CURRENT_COURSE(state, courseId) {
    state.currentCourseId = courseId;
    
    // 更新最近浏览记录
    const index = state.recentlyViewedCourses.indexOf(courseId);
    if (index !== -1) {
      state.recentlyViewedCourses.splice(index, 1);
    }
    state.recentlyViewedCourses.unshift(courseId);
    
    // 最多保留10条记录
    if (state.recentlyViewedCourses.length > 10) {
      state.recentlyViewedCourses.pop();
    }
  },
  
  // 添加到收藏
  ADD_TO_FAVORITES(state, courseId) {
    if (!state.favoriteCourses.includes(courseId)) {
      state.favoriteCourses.push(courseId);
    }
  },
  
  // 从收藏中移除
  REMOVE_FROM_FAVORITES(state, courseId) {
    const index = state.favoriteCourses.indexOf(courseId);
    if (index !== -1) {
      state.favoriteCourses.splice(index, 1);
    }
  },
  
  // 添加到已购课程
  ADD_TO_PURCHASED(state, courseId) {
    if (!state.purchasedCourses.includes(courseId)) {
      state.purchasedCourses.push(courseId);
    }
  }
};

const actions = {
  // 获取课程详情
  getCourseDetail({ commit }, courseId) {
    // 实际项目中这里应该是API请求
    // 这里直接从state中获取数据
    commit('SET_CURRENT_COURSE', courseId);
    return Promise.resolve();
  },
  
  // 添加到收藏
  addToFavorites({ commit }, courseId) {
    commit('ADD_TO_FAVORITES', courseId);
    return Promise.resolve();
  },
  
  // 从收藏中移除
  removeFromFavorites({ commit }, courseId) {
    commit('REMOVE_FROM_FAVORITES', courseId);
    return Promise.resolve();
  },
  
  // 购买课程
  purchaseCourse({ commit }, courseId) {
    // 实际项目中这里应该有支付流程
    // 这里直接添加到已购课程列表
    commit('ADD_TO_PURCHASED', courseId);
    return Promise.resolve();
  }
};

const getters = {
  // 获取当前课程详情
  currentCourse: state => {
    return state.currentCourseId ? state.courseDetails[state.currentCourseId] : null;
  },
  
  // 判断课程是否已购买
  isPurchased: state => courseId => {
    return state.purchasedCourses.includes(Number(courseId));
  },
  
  // 判断课程是否已收藏
  isFavorite: state => courseId => {
    return state.favoriteCourses.includes(Number(courseId));
  },
  
  // 获取相关课程列表
  getRelatedCourses: state => courseIds => {
    return courseIds.map(id => state.courseDetails[id]).filter(course => course);
  }
};

export default {
  namespaced: true,
  state,
  mutations,
  actions,
  getters
}; 